package com.itcam.web.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itcam.web.model.dto.generator.GeneratorQueryRequest;
import com.itcam.web.model.entity.Generator;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itcam.web.model.vo.GeneratorVO;

import javax.servlet.http.HttpServletRequest;

/**
 * @author Cammy
 * @description 针对表【generator(代码生成器)】的数据库操作Service
 * @createDate 2025-02-12 22:51:27
 */
public interface GeneratorService extends IService<Generator> {

    /**
     * 验证生成器对象的有效性
     *
     * @param generator 要验证的生成器对象
     * @param b 一个布尔值，用于指定验证的某些条件（具体条件需根据业务逻辑确定）
     */
    void validGenerator(Generator generator, boolean b);

    /**
     * 根据生成器查询请求构建查询条件包装器
     *
     * @param generatorQueryRequest 生成器查询请求对象
     * @return 查询条件包装器
     */
    QueryWrapper<Generator> getQueryWrapper(GeneratorQueryRequest generatorQueryRequest);

    /**
     * 获取生成器对象封装
     *
     * @param generator
     * @param request
     * @return
     */
    GeneratorVO getGeneratorVO(Generator generator, HttpServletRequest request);

    /**
     * 分页获取生成器对象封装
     *
     * @param generatorPage
     * @param request
     * @return
     */
    Page<GeneratorVO> getGeneratorVOPage(Page<Generator> generatorPage, HttpServletRequest request);
}
